<html>
<head></head>

<body>

<p>Data structures for representing the abstract syntax tree of BoogiePL.</p>


<h2>Principles</h2>

<ul>
<li>few AST nodes
<li>support pretty print and verbose dump for debug
<li>must be able to parse/print programs and program fragments (expr, stmt)
<li>must read from both streams and strings 
<li>good location tracking for error reporting
</ul>


<h2>The abstract grammar</h2>

<p>
<a href="http://code.google.com/p/freeboogie/source/browse/trunk/FreeBoogie/src/freeboogie/ast/fb.ag">
The abstract grammar</a>
is described in 
<a href="http://code.google.com/p/freeboogie/wiki/AstGen">
the format understood by AstGen</a>. AstGen produces
immutable data structures to represent the AST and a little
bit of extra documentation: see the file 
<tt>src/freeboogie/ast/ag.html</tt>
after running <tt>ant</tt>.
</p>

</body>

</html>
